//1.使用构造函数定义非共享属性
function Person(name, age, friends){
    this.name = name;
    this.age = age;
    this.friends = friends;
}

//2.重写原型加入共享属性和方法
Person.prototype = {
    constructor : Person,
    say : function(){
        alert(this.friends);
    }
}

var p1 = new Person("小明", 18, ["张三"]);
var p2 = new Person("张三", 20, ["小明"]);

p1.friends.push("王五");
alert(p1.friends);//张三,王五
alert(p2.friends);//小明

//组合构造函数和原型的方式是目前创建自定义类型的最佳方式